package com.cv.platform.service.label;

import com.cv.platform.controller.platform.label.vo.record.CvVideoLabelBatchSaveReqVO;
import com.cv.platform.controller.platform.label.vo.ref.CvVideoLabelRefSaveReqVO;
import com.cv.platform.controller.platform.label.vo.record.CvVideoLabelRespVO;
import com.cv.platform.controller.platform.label.vo.record.CvVideoLabelSaveReqVO;

import java.util.List;

/**
 * 视频标签业务层接口
 *
 * @author Charles_XDXD
 */
public interface CvVideoLabelService {

    /**
     * 新增视频标签
     *
     * @param reqVO 视频标签保存请求对象
     * @return 视频标签编号
     */
    Long insertLabel(CvVideoLabelSaveReqVO reqVO);

    /**
     * 新增视频标签关联
     *
     * @param reqVO 视频标签关联保存请求对象
     */
    void insertLabelRef(CvVideoLabelRefSaveReqVO reqVO);

    /**
     * 根据视频编号获取视频标签列表
     *
     * @param videoId 视频编号
     * @return 视频标签列表
     */
    List<CvVideoLabelRespVO> getAllLabelByVideoId(Long videoId);

    /**
     * 批量新增或更新视频标签
     *
     * @param reqVOList 视频标签批量保存请求对象
     */
    void batchInsertOrUpdateLabel(CvVideoLabelBatchSaveReqVO reqVOList);

}
